<!--
@Author: 何孟燃
@Date: 2024/4/30
@Description: 定义了一些方法和计算属性，用于处理聊天界面的一些功能。
              Vue 组件的聊天界面逻辑，包括处理用户输入、转换 Markdown 文本、更新聊天记录、滚动聊天界面以及与 Vuex store 交互在此定义
-->
<script>
import {mapActions, mapGetters} from "vuex";
import {bus} from "vue3-eventbus";
import {marked} from "marked";
// import bus from "@/eventbus/eventbus.ts";
import human from "@/assets/imgs/human.png";

export default {
  data() {
    return {
      human,
      isShowGoBottom: false,
    };
  },
  mounted() {
    bus.on('scroll-to-bottom', this.scrollToBottom);
  },
  beforeDestroy() {
    bus.off('scroll-to-bottom', this.scrollToBottom);
  },
  methods:{
    inputChat(msg) {
      console.log(msg);
      this.setChatMsg(msg);
    },
    countAndConcat(str, substr) {
      // 使用正则表达式的全局匹配来查找子字符串
      const matches = str.match(new RegExp(substr, 'g'));

      // 判断子字符串的个数是奇数还是偶数
      const count = matches ? matches.length : 0;
      const isOdd = count % 2 === 1;

      // 根据判断结果返回相应的字符串
      return isOdd ? str + "\n" + substr : str;
    },
    //transform markdown to html
    mdToHtml(md, conv) {
      if (md == "") {
        return "<p></p>"
      }

      md = this.countAndConcat(md, "```")
      md = md.replace(/(^|\n)(#+)([^\s#])/g, "$1$2 $3")  // 处理标题
          .replace(/(^|\n)(-)([^\s-])/g, "$1$2 $3");  // 处理无序列表项

      var htmlMD = marked.parse(md);
      //console.log('htmlMD', htmlMD)
      htmlMD = htmlMD.trim();
      return htmlMD;
    },
    refreshConversation() {
      this.conversation=(JSON.parse(JSON.stringify(this.conversation)));
    },
    scrollToBottom() {
      let scrollElem = this.$refs.chatContainer;
      //console.log('scroll to bottom', scrollElem)
      scrollElem.scrollTo({ top: scrollElem.scrollHeight, behavior: 'smooth' });
    },
    ...mapActions([
        'setChatMsg',
      'addMessage',  // 使用 action 添加消息
      'setConversation'
    ])
  },
  computed: {
    conversation: {
      get() {
        return this.getConversation;
      },
      set(value) {
        this.setConversation(value);
      }
    },
    ...mapGetters([
      'getConversation'
    ])
  },
}
</script>

<template>
  <main class="relative h-full w-full transition-width flex flex-col overflow-hidden items-stretch flex-1">
    <!-- 聊天窗 -->
    <div class="flex-1 overflow-hidden">
      <div class="react-scroll-to-bottom--css-ncqif-79elbk h-full dark:bg-gray-800">
        <div ref="chatContainer" class="react-scroll-to-bottom--css-krija-1n7m0yu">
          <div class="flex flex-col items-center text-sm dark:bg-gray-800">
            <!-- 对话item -->
            <template v-for="(msg, idx) in this.conversation?.msgList">
              <!-- human -->
              <div v-if="msg.role == 'user'"
                   class="w-full border-b border-black/10 dark:border-gray-900/50 text-gray-800 dark:text-gray-100 group dark:bg-gray-800">
                <div
                    class="text-base gap-4 md:gap-6 m-auto md:max-w-2xl lg:max-w-2xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0">
                  <div class="w-[30px] flex flex-col relative items-end">
                    <div class="relative flex">
                              <span
                                  style="box-sizing: border-box; display: inline-block; overflow: hidden; width: initial; height: initial; background: none; opacity: 1; border: 0px; margin: 0px; padding: 0px; position: relative; max-width: 100%;">
                                <span
                                    style="box-sizing: border-box; display: block; width: initial; height: initial; background: none; opacity: 1; border: 0px; margin: 0px; padding: 0px; max-width: 100%;">
                                  <img aria-hidden="true" :src="human"
                                       alt="human"
                                       style="display: block; max-width: 100%; width: initial; height: initial; background: none; opacity: 1; border: 0px; margin: 0px; padding: 0px;">
                                </span>
                              </span>
                    </div>
                  </div>
                  <div class="relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]">
                    <div class="flex flex-grow flex-col gap-3">
                      <div class="min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap">{{
                          msg.message
                        }}
                      </div>
                    </div>
                    <div v-if="false"
                         class="text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-3 md:gap-4 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible">
                      <button
                          class="p-1 rounded-md hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200 disabled:dark:hover:text-gray-400 md:invisible md:group-hover:visible">
                        <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24"
                             stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" height="1em" width="1em"
                             xmlns="http://www.w3.org/2000/svg">
                          <path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path>
                          <path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path>
                        </svg>
                      </button>
                    </div>
                    <div class="flex justify-between"></div>
                  </div>
                </div>
              </div>

              <!-- ai -->
              <div v-if="msg.role === 'assistant'"
                   class="w-full border-b border-black/10 dark:border-gray-900/50 text-gray-800 dark:text-gray-100 group bg-gray-50 dark:bg-[#444654]">
                <div
                    class="text-base gap-4 md:gap-6 m-auto md:max-w-2xl lg:max-w-2xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0">
                  <div class="w-[30px] flex flex-col relative items-end">
                    <div
                        class="relative h-[30px] w-[30px] p-1 rounded-sm text-white flex items-center justify-center"
                        style="background-color: rgb(16, 163, 127);">
<!--                      <svg width="41" height="41" viewBox="0 0 41 41" fill="none"-->
<!--                           xmlns="http://www.w3.org/2000/svg" stroke-width="1.5" class="h-6 w-6">-->
<!--                        <path-->
<!--                            d="M37.5324 16.8707C37.9808 15.5241 38.1363 14.0974 37.9886 12.6859C37.8409 11.2744 37.3934 9.91076 36.676 8.68622C35.6126 6.83404 33.9882 5.3676 32.0373 4.4985C30.0864 3.62941 27.9098 3.40259 25.8215 3.85078C24.8796 2.7893 23.7219 1.94125 22.4257 1.36341C21.1295 0.785575 19.7249 0.491269 18.3058 0.500197C16.1708 0.495044 14.0893 1.16803 12.3614 2.42214C10.6335 3.67624 9.34853 5.44666 8.6917 7.47815C7.30085 7.76286 5.98686 8.3414 4.8377 9.17505C3.68854 10.0087 2.73073 11.0782 2.02839 12.312C0.956464 14.1591 0.498905 16.2988 0.721698 18.4228C0.944492 20.5467 1.83612 22.5449 3.268 24.1293C2.81966 25.4759 2.66413 26.9026 2.81182 28.3141C2.95951 29.7256 3.40701 31.0892 4.12437 32.3138C5.18791 34.1659 6.8123 35.6322 8.76321 36.5013C10.7141 37.3704 12.8907 37.5973 14.9789 37.1492C15.9208 38.2107 17.0786 39.0587 18.3747 39.6366C19.6709 40.2144 21.0755 40.5087 22.4946 40.4998C24.6307 40.5054 26.7133 39.8321 28.4418 38.5772C30.1704 37.3223 31.4556 35.5506 32.1119 33.5179C33.5027 33.2332 34.8167 32.6547 35.9659 31.821C37.115 30.9874 38.0728 29.9178 38.7752 28.684C39.8458 26.8371 40.3023 24.6979 40.0789 22.5748C39.8556 20.4517 38.9639 18.4544 37.5324 16.8707ZM22.4978 37.8849C20.7443 37.8874 19.0459 37.2733 17.6994 36.1501C17.7601 36.117 17.8666 36.0586 17.936 36.0161L25.9004 31.4156C26.1003 31.3019 26.2663 31.137 26.3813 30.9378C26.4964 30.7386 26.5563 30.5124 26.5549 30.2825V19.0542L29.9213 20.998C29.9389 21.0068 29.9541 21.0198 29.9656 21.0359C29.977 21.052 29.9842 21.0707 29.9867 21.0902V30.3889C29.9842 32.375 29.1946 34.2791 27.7909 35.6841C26.3872 37.0892 24.4838 37.8806 22.4978 37.8849ZM6.39227 31.0064C5.51397 29.4888 5.19742 27.7107 5.49804 25.9832C5.55718 26.0187 5.66048 26.0818 5.73461 26.1244L13.699 30.7248C13.8975 30.8408 14.1233 30.902 14.3532 30.902C14.583 30.902 14.8088 30.8408 15.0073 30.7248L24.731 25.1103V28.9979C24.7321 29.0177 24.7283 29.0376 24.7199 29.0556C24.7115 29.0736 24.6988 29.0893 24.6829 29.1012L16.6317 33.7497C14.9096 34.7416 12.8643 35.0097 10.9447 34.4954C9.02506 33.9811 7.38785 32.7263 6.39227 31.0064ZM4.29707 13.6194C5.17156 12.0998 6.55279 10.9364 8.19885 10.3327C8.19885 10.4013 8.19491 10.5228 8.19491 10.6071V19.808C8.19351 20.0378 8.25334 20.2638 8.36823 20.4629C8.48312 20.6619 8.64893 20.8267 8.84863 20.9404L18.5723 26.5542L15.206 28.4979C15.1894 28.5089 15.1703 28.5155 15.1505 28.5173C15.1307 28.5191 15.1107 28.516 15.0924 28.5082L7.04046 23.8557C5.32135 22.8601 4.06716 21.2235 3.55289 19.3046C3.03862 17.3858 3.30624 15.3413 4.29707 13.6194ZM31.955 20.0556L22.2312 14.4411L25.5976 12.4981C25.6142 12.4872 25.6333 12.4805 25.6531 12.4787C25.6729 12.4769 25.6928 12.4801 25.7111 12.4879L33.7631 17.1364C34.9967 17.849 36.0017 18.8982 36.6606 20.1613C37.3194 21.4244 37.6047 22.849 37.4832 24.2684C37.3617 25.6878 36.8382 27.0432 35.9743 28.1759C35.1103 29.3086 33.9415 30.1717 32.6047 30.6641C32.6047 30.5947 32.6047 30.4733 32.6047 30.3889V21.188C32.6066 20.9586 32.5474 20.7328 32.4332 20.5338C32.319 20.3348 32.154 20.1698 31.955 20.0556ZM35.3055 15.0128C35.2464 14.9765 35.1431 14.9142 35.069 14.8717L27.1045 10.2712C26.906 10.1554 26.6803 10.0943 26.4504 10.0943C26.2206 10.0943 25.9948 10.1554 25.7963 10.2712L16.0726 15.8858V11.9982C16.0715 11.9783 16.0753 11.9585 16.0837 11.9405C16.0921 11.9225 16.1048 11.9068 16.1207 11.8949L24.1719 7.25025C25.4053 6.53903 26.8158 6.19376 28.2383 6.25482C29.6608 6.31589 31.0364 6.78077 32.2044 7.59508C33.3723 8.40939 34.2842 9.53945 34.8334 10.8531C35.3826 12.1667 35.5464 13.6095 35.3055 15.0128ZM14.2424 21.9419L10.8752 19.9981C10.8576 19.9893 10.8423 19.9763 10.8309 19.9602C10.8195 19.9441 10.8122 19.9254 10.8098 19.9058V10.6071C10.8107 9.18295 11.2173 7.78848 11.9819 6.58696C12.7466 5.38544 13.8377 4.42659 15.1275 3.82264C16.4173 3.21869 17.8524 2.99464 19.2649 3.1767C20.6775 3.35876 22.0089 3.93941 23.1034 4.85067C23.0427 4.88379 22.937 4.94215 22.8668 4.98473L14.9024 9.58517C14.7025 9.69878 14.5366 9.86356 14.4215 10.0626C14.3065 10.2616 14.2466 10.4877 14.2479 10.7175L14.2424 21.9419ZM16.071 17.9991L20.4018 15.4978L24.7325 17.9975V22.9985L20.4018 25.4983L16.071 22.9985V17.9991Z"-->
<!--                            fill="currentColor"></path>-->
<!--                      </svg>-->
                      <svg height="1024" node-id="1" sillyvg="true" template-height="1024" template-width="1024" version="1.1" viewBox="0 0 1024 1024" width="1024"
                           xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs node-id="96"><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-11" node-id="36" spreadMethod="pad" x1="0.5" x2="1" y1="0.51806426" y2="0.4877939"><stop offset="0" stop-color="#a1c5fd"/><stop offset="1" stop-color="#639bff"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-12" node-id="39" spreadMethod="pad" x1="0.5" x2="0.5" y1="0.21818054" y2="2.2574537"><stop offset="0" stop-color="#79b0fd"/><stop offset="1" stop-color="#7596ff"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-13" node-id="42" spreadMethod="pad" x1="0.5" x2="0.83355683" y1="0.64746344" y2="0.40035838"><stop offset="0" stop-color="#a1c5fd"/><stop offset="1" stop-color="#639bff"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-16" node-id="46" spreadMethod="pad" x1="0.99742186" x2="-0.01257813" y1="0.4975" y2="0.4975"><stop offset="0" stop-color="#3d7fff"/><stop offset="1" stop-color="#53fdf3"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-17" node-id="49" spreadMethod="pad" x1="0.5" x2="0.5" y1="0" y2="0.99276817"><stop offset="0" stop-color="#2e94ff" stop-opacity="0.3118444"/><stop offset="1" stop-color="#daa4ff" stop-opacity="0"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-18" node-id="52" spreadMethod="pad" x1="0.5" x2="0.5" y1="0" y2="0.97841"><stop offset="0" stop-color="#ebecff" stop-opacity="0.352382"/><stop offset="1" stop-color="#d3d4ff" stop-opacity="0"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-19" node-id="55" spreadMethod="pad" x1="0.5" x2="1" y1="0.64746344" y2="0.40035838"><stop offset="0" stop-color="#a1c5fd"/><stop offset="1" stop-color="#639bff"/></linearGradient><linearGradient gradientUnits="objectBoundingBox" id="linearGradient-20" node-id="58" spreadMethod="pad" x1="0.5" x2="0.5" y1="0" y2="1"><stop offset="0" stop-color="#9cbcfa" stop-opacity="0"/><stop offset="1" stop-color="#92abff"/></linearGradient><filter height="1032.192" id="filter-2" node-id="6" width="1032.192" x="-4.096" y="-4.096"><feGaussianBlur color-interpolation-filters="linearRGB" in="SourceAlpha" result="shadowBlurInner1" stdDeviation="4 4"></feGaussianBlur><feOffset color-interpolation-filters="linearRGB" dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset><feComposite color-interpolation-filters="linearRGB" in="shadowOffsetInner1" in2="SourceAlpha" k1="0" k2="-1" k3="1" k4="0" operator="arithmetic" result="shadowInnerInner1"></feComposite><feColorMatrix color-interpolation-filters="linearRGB" in="shadowInnerInner1" result="result4" type="matrix" values="0 0 0 0 0.5349466 0 0 0 0 0.7029659 0 0 0 0 1 0 0 0 0.5 0"></feColorMatrix></filter><filter height="897.9018" id="filter-5" node-id="12" width="897.9018" x="63.487995" y="63.487995"><feGaussianBlur color-interpolation-filters="linearRGB" in="SourceAlpha" result="shadowBlurInner1" stdDeviation="8 8"></feGaussianBlur><feOffset color-interpolation-filters="linearRGB" dx="0" dy="4" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset><feComposite color-interpolation-filters="linearRGB" in="shadowOffsetInner1" in2="SourceAlpha" k1="0" k2="-1" k3="1" k4="0" operator="arithmetic" result="shadowInnerInner1"></feComposite><feColorMatrix color-interpolation-filters="linearRGB" in="shadowInnerInner1" result="result4" type="matrix" values="0 0 0 0 0.5349466 0 0 0 0 0.7029659 0 0 0 0 1 0 0 0 1 0"></feColorMatrix></filter><filter height="424.75516" id="filter-7" node-id="18" width="737.55304" x="138.34729" y="477.00845"><feMorphology color-interpolation-filters="linearRGB" in="SourceAlpha" operator="dilate" radius="0.5 0.5" result="shadowSpreadOuter1"></feMorphology><feOffset color-interpolation-filters="linearRGB" dx="0" dy="2" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset><feGaussianBlur color-interpolation-filters="linearRGB" in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="2 2"></feGaussianBlur><feComposite color-interpolation-filters="linearRGB" in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite><feColorMatrix color-interpolation-filters="linearRGB" in="shadowBlurOuter1" result="result5" type="matrix" values="0 0 0 0 0.7607843 0 0 0 0 0.85490197 0 0 0 0 0.99607843 0 0 0 0.4 0"></feColorMatrix></filter><filter height="328.15784" id="filter-9" node-id="25" width="573.78125" x="218.00278" y="493.32227"><feOffset color-interpolation-filters="linearRGB" dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur color-interpolation-filters="linearRGB" in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="2 2"></feGaussianBlur><feColorMatrix color-interpolation-filters="linearRGB" in="shadowBlurOuter1" result="result3" type="matrix" values="0 0 0 0 0.7607843 0 0 0 0 0.85490197 0 0 0 0 0.99607843 0 0 0 0.4 0"></feColorMatrix></filter><filter height="869.5018" id="filter-10" node-id="29" width="736.29987" x="-144.57439" y="-144.62537"><feOffset color-interpolation-filters="linearRGB" dx="0" dy="26" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur color-interpolation-filters="linearRGB" in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="24 24"></feGaussianBlur><feColorMatrix color-interpolation-filters="linearRGB" in="shadowBlurOuter1" result="shadowMatrixOuter1" type="matrix" values="0 0 0 0 0.78071606 0 0 0 0 0.2887861 0 0 0 0 0.9072973 0 0 0 0.10025131 0"></feColorMatrix><feMerge color-interpolation-filters="linearRGB" result="result4"><feMergeNode in="shadowMatrixOuter1"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter><mask height="491.52" id="mask-4" maskUnits="userSpaceOnUse" node-id="66" width="866.0115" x="74.118095" y="441.78287"><path d="M 950.90 512.00 L 950.60 526.60 L 949.90 541.10 L 948.70 555.50 L 947.00 569.70 L 944.90 583.90 L 942.30 598.00 L 939.30 612.10 L 935.80 625.90 L 931.90 639.70 L 927.50 653.20 L 922.70 666.70 L 917.50 679.90 L 911.80 693.10 L 905.70 705.90 L 899.20 718.60 L 892.20 731.10 L 884.90 743.40 L 877.10 755.50 L 869.00 767.30 L 860.40 778.80 L 851.50 790.10 L 842.20 801.10 L 832.50 811.80 L 822.30 822.30 L 811.80 832.50 L 801.10 842.20 L 790.10 851.50 L 778.80 860.40 L 767.30 869.00 L 755.50 877.10 L 743.40 884.90 L 731.10 892.20 L 718.60 899.20 L 705.90 905.70 L 693.10 911.80 L 679.90 917.50 L 666.70 922.70 L 653.20 927.50 L 639.70 931.90 L 625.90 935.80 L 612.10 939.30 L 598.00 942.30 L 583.90 944.90 L 569.70 947.00 L 555.50 948.70 L 541.10 949.90 L 526.60 950.60 L 512.00 950.90 L 497.40 950.60 L 482.90 949.90 L 468.50 948.70 L 454.30 947.00 L 440.10 944.90 L 426.00 942.30 L 411.90 939.30 L 398.10 935.80 L 384.30 931.90 L 370.80 927.50 L 357.30 922.70 L 344.10 917.50 L 330.90 911.80 L 318.10 905.70 L 305.40 899.20 L 292.90 892.20 L 280.60 884.90 L 268.50 877.10 L 256.70 869.00 L 245.20 860.40 L 233.90 851.50 L 222.90 842.20 L 212.20 832.50 L 201.70 822.30 L 191.50 811.80 L 181.80 801.10 L 172.50 790.10 L 163.60 778.80 L 155.00 767.30 L 146.90 755.50 L 139.10 743.40 L 131.80 731.10 L 124.80 718.60 L 118.30 705.90 L 112.20 693.10 L 106.50 679.90 L 101.30 666.70 L 96.50 653.20 L 92.10 639.70 L 88.20 625.90 L 84.70 612.10 L 81.70 598.00 L 79.10 583.90 L 77.00 569.70 L 75.30 555.50 L 74.10 541.10 L 73.40 526.60 L 73.10 512.00 L 73.40 497.40 L 74.10 482.90 L 75.30 468.50 L 77.00 454.30 L 79.10 440.10 L 81.70 426.00 L 84.70 411.90 L 88.20 398.10 L 92.10 384.30 L 96.50 370.80 L 101.30 357.30 L 106.50 344.10 L 112.20 330.90 L 118.30 318.10 L 124.80 305.40 L 131.80 292.90 L 139.10 280.60 L 146.90 268.50 L 155.00 256.70 L 163.60 245.20 L 172.50 233.90 L 181.80 222.90 L 191.50 212.20 L 201.70 201.70 L 212.20 191.50 L 222.90 181.80 L 233.90 172.50 L 245.20 163.60 L 256.70 155.00 L 268.50 146.90 L 280.60 139.10 L 292.90 131.80 L 305.40 124.80 L 318.10 118.30 L 330.90 112.20 L 344.10 106.50 L 357.30 101.30 L 370.80 96.50 L 384.30 92.10 L 398.10 88.20 L 411.90 84.70 L 426.00 81.70 L 440.10 79.10 L 454.30 77.00 L 468.50 75.30 L 482.90 74.10 L 497.40 73.40 L 512.00 73.10 L 526.60 73.40 L 541.10 74.10 L 555.50 75.30 L 569.70 77.00 L 583.90 79.10 L 598.00 81.70 L 612.10 84.70 L 625.90 88.20 L 639.70 92.10 L 653.20 96.50 L 666.70 101.30 L 679.90 106.50 L 693.10 112.20 L 705.90 118.30 L 718.60 124.80 L 731.10 131.80 L 743.40 139.10 L 755.50 146.90 L 767.30 155.00 L 778.80 163.60 L 790.10 172.50 L 801.10 181.80 L 811.80 191.50 L 822.30 201.70 L 832.50 212.20 L 842.20 222.90 L 851.50 233.90 L 860.40 245.20 L 869.00 256.70 L 877.10 268.50 L 884.90 280.60 L 892.20 292.90 L 899.20 305.40 L 905.70 318.10 L 911.80 330.90 L 917.50 344.10 L 922.70 357.30 L 927.50 370.80 L 931.90 384.30 L 935.80 398.10 L 939.30 411.90 L 942.30 426.00 L 944.90 440.10 L 947.00 454.30 L 948.70 468.50 L 949.90 482.90 L 950.60 497.40 L 950.90 512.00 Z" fill="#ffffff" fill-rule="evenodd" node-id="204" stroke="none" target-height="877.80005" target-width="877.80005" target-x="73.1" target-y="73.1"/></mask><mask height="376.832" id="mask1" maskUnits="userSpaceOnUse" node-id="208" width="671.74396" x="169.30133" y="466.944"><path d="M 950.90 512.00 L 950.60 526.60 L 949.90 541.10 L 948.70 555.50 L 947.00 569.70 L 944.90 583.90 L 942.30 598.00 L 939.30 612.10 L 935.80 625.90 L 931.90 639.70 L 927.50 653.20 L 922.70 666.70 L 917.50 679.90 L 911.80 693.10 L 905.70 705.90 L 899.20 718.60 L 892.20 731.10 L 884.90 743.40 L 877.10 755.50 L 869.00 767.30 L 860.40 778.80 L 851.50 790.10 L 842.20 801.10 L 832.50 811.80 L 822.30 822.30 L 811.80 832.50 L 801.10 842.20 L 790.10 851.50 L 778.80 860.40 L 767.30 869.00 L 755.50 877.10 L 743.40 884.90 L 731.10 892.20 L 718.60 899.20 L 705.90 905.70 L 693.10 911.80 L 679.90 917.50 L 666.70 922.70 L 653.20 927.50 L 639.70 931.90 L 625.90 935.80 L 612.10 939.30 L 598.00 942.30 L 583.90 944.90 L 569.70 947.00 L 555.50 948.70 L 541.10 949.90 L 526.60 950.60 L 512.00 950.90 L 497.40 950.60 L 482.90 949.90 L 468.50 948.70 L 454.30 947.00 L 440.10 944.90 L 426.00 942.30 L 411.90 939.30 L 398.10 935.80 L 384.30 931.90 L 370.80 927.50 L 357.30 922.70 L 344.10 917.50 L 330.90 911.80 L 318.10 905.70 L 305.40 899.20 L 292.90 892.20 L 280.60 884.90 L 268.50 877.10 L 256.70 869.00 L 245.20 860.40 L 233.90 851.50 L 222.90 842.20 L 212.20 832.50 L 201.70 822.30 L 191.50 811.80 L 181.80 801.10 L 172.50 790.10 L 163.60 778.80 L 155.00 767.30 L 146.90 755.50 L 139.10 743.40 L 131.80 731.10 L 124.80 718.60 L 118.30 705.90 L 112.20 693.10 L 106.50 679.90 L 101.30 666.70 L 96.50 653.20 L 92.10 639.70 L 88.20 625.90 L 84.70 612.10 L 81.70 598.00 L 79.10 583.90 L 77.00 569.70 L 75.30 555.50 L 74.10 541.10 L 73.40 526.60 L 73.10 512.00 L 73.40 497.40 L 74.10 482.90 L 75.30 468.50 L 77.00 454.30 L 79.10 440.10 L 81.70 426.00 L 84.70 411.90 L 88.20 398.10 L 92.10 384.30 L 96.50 370.80 L 101.30 357.30 L 106.50 344.10 L 112.20 330.90 L 118.30 318.10 L 124.80 305.40 L 131.80 292.90 L 139.10 280.60 L 146.90 268.50 L 155.00 256.70 L 163.60 245.20 L 172.50 233.90 L 181.80 222.90 L 191.50 212.20 L 201.70 201.70 L 212.20 191.50 L 222.90 181.80 L 233.90 172.50 L 245.20 163.60 L 256.70 155.00 L 268.50 146.90 L 280.60 139.10 L 292.90 131.80 L 305.40 124.80 L 318.10 118.30 L 330.90 112.20 L 344.10 106.50 L 357.30 101.30 L 370.80 96.50 L 384.30 92.10 L 398.10 88.20 L 411.90 84.70 L 426.00 81.70 L 440.10 79.10 L 454.30 77.00 L 468.50 75.30 L 482.90 74.10 L 497.40 73.40 L 512.00 73.10 L 526.60 73.40 L 541.10 74.10 L 555.50 75.30 L 569.70 77.00 L 583.90 79.10 L 598.00 81.70 L 612.10 84.70 L 625.90 88.20 L 639.70 92.10 L 653.20 96.50 L 666.70 101.30 L 679.90 106.50 L 693.10 112.20 L 705.90 118.30 L 718.60 124.80 L 731.10 131.80 L 743.40 139.10 L 755.50 146.90 L 767.30 155.00 L 778.80 163.60 L 790.10 172.50 L 801.10 181.80 L 811.80 191.50 L 822.30 201.70 L 832.50 212.20 L 842.20 222.90 L 851.50 233.90 L 860.40 245.20 L 869.00 256.70 L 877.10 268.50 L 884.90 280.60 L 892.20 292.90 L 899.20 305.40 L 905.70 318.10 L 911.80 330.90 L 917.50 344.10 L 922.70 357.30 L 927.50 370.80 L 931.90 384.30 L 935.80 398.10 L 939.30 411.90 L 942.30 426.00 L 944.90 440.10 L 947.00 454.30 L 948.70 468.50 L 949.90 482.90 L 950.60 497.40 L 950.90 512.00 Z" fill="#ffffff" fill-rule="evenodd" node-id="212" stroke="none" target-height="877.80005" target-width="877.80005" target-x="73.1" target-y="73.1"/></mask><mask height="1022.0003" id="mask2" maskUnits="userSpaceOnUse" node-id="216" width="1099.7517" x="411.39154" y="847.82404"><path d="M 1400.60 1254.30 L 1407.00 1267.40 L 1412.90 1280.70 L 1418.40 1294.00 L 1423.40 1307.50 L 1427.90 1321.10 L 1432.00 1334.80 L 1435.70 1348.70 L 1438.90 1362.70 L 1441.60 1376.70 L 1443.90 1390.70 L 1445.70 1404.90 L 1447.00 1419.10 L 1447.90 1433.40 L 1448.40 1447.60 L 1448.30 1461.90 L 1447.80 1476.20 L 1446.80 1490.40 L 1445.40 1504.70 L 1443.50 1518.90 L 1441.10 1533.10 L 1438.30 1547.20 L 1435.00 1561.20 L 1431.20 1575.20 L 1426.90 1589.20 L 1422.20 1603.00 L 1417.00 1616.50 L 1411.40 1629.80 L 1405.50 1642.90 L 1399.10 1655.70 L 1392.20 1668.30 L 1385.00 1680.80 L 1377.40 1692.90 L 1369.40 1704.70 L 1361.10 1716.30 L 1352.30 1727.50 L 1343.20 1738.60 L 1333.80 1749.30 L 1324.00 1759.70 L 1313.90 1769.70 L 1303.50 1779.40 L 1292.70 1788.80 L 1281.50 1797.90 L 1270.20 1806.60 L 1258.50 1815.00 L 1246.50 1822.90 L 1234.20 1830.50 L 1221.70 1837.70 L 1208.80 1844.60 L 1195.70 1851.00 L 1182.40 1856.90 L 1169.10 1862.40 L 1155.60 1867.40 L 1142.00 1871.90 L 1128.30 1876.00 L 1114.40 1879.70 L 1100.40 1882.90 L 1086.40 1885.60 L 1072.30 1887.90 L 1058.20 1889.70 L 1044.00 1891.10 L 1029.70 1891.90 L 1015.40 1892.40 L 1001.20 1892.30 L 986.90 1891.80 L 972.70 1890.90 L 958.40 1889.40 L 944.10 1887.50 L 930.00 1885.10 L 915.90 1882.30 L 901.90 1879.00 L 887.90 1875.20 L 873.90 1870.90 L 860.10 1866.20 L 846.60 1861.00 L 833.30 1855.50 L 820.20 1849.50 L 807.40 1843.10 L 794.70 1836.30 L 782.30 1829.00 L 770.20 1821.40 L 758.40 1813.40 L 746.80 1805.10 L 735.50 1796.40 L 724.50 1787.30 L 713.80 1777.80 L 703.40 1768.00 L 693.40 1757.90 L 683.60 1747.50 L 674.20 1736.70 L 665.10 1725.60 L 656.40 1714.20 L 648.10 1702.50 L 640.20 1690.50 L 632.60 1678.30 L 625.40 1665.70 L 618.50 1652.80 L 612.10 1639.70 L 606.20 1626.40 L 600.70 1613.10 L 595.70 1599.60 L 591.10 1586.00 L 587.00 1572.30 L 583.40 1558.40 L 580.20 1544.40 L 577.50 1530.40 L 575.20 1516.40 L 573.40 1502.20 L 572.00 1488.00 L 571.10 1473.70 L 570.70 1459.50 L 570.80 1445.20 L 571.30 1430.90 L 572.20 1416.70 L 573.70 1402.40 L 575.60 1388.20 L 577.90 1374.00 L 580.80 1359.90 L 584.10 1345.90 L 587.90 1331.90 L 592.20 1317.90 L 596.90 1304.10 L 602.10 1290.60 L 607.60 1277.30 L 613.60 1264.20 L 620.00 1251.40 L 626.80 1238.80 L 634.10 1226.30 L 641.70 1214.20 L 649.70 1202.40 L 658.00 1190.80 L 666.70 1179.60 L 675.80 1168.50 L 685.30 1157.80 L 695.10 1147.40 L 705.20 1137.40 L 715.60 1127.70 L 726.40 1118.30 L 737.50 1109.20 L 748.90 1100.50 L 760.60 1092.10 L 772.60 1084.20 L 784.80 1076.60 L 797.40 1069.40 L 810.30 1062.50 L 823.40 1056.10 L 836.60 1050.20 L 850.00 1044.70 L 863.50 1039.70 L 877.10 1035.20 L 890.80 1031.10 L 904.70 1027.40 L 918.60 1024.20 L 932.70 1021.50 L 946.70 1019.20 L 960.90 1017.40 L 975.10 1016.00 L 989.40 1015.20 L 1003.60 1014.70 L 1017.90 1014.80 L 1032.10 1015.30 L 1046.40 1016.20 L 1060.70 1017.70 L 1074.90 1019.60 L 1089.10 1022.00 L 1103.20 1024.80 L 1117.20 1028.10 L 1131.20 1031.90 L 1145.10 1036.20 L 1159.00 1040.90 L 1172.50 1046.10 L 1185.80 1051.60 L 1198.90 1057.60 L 1211.70 1064.00 L 1224.30 1070.80 L 1236.70 1078.10 L 1248.90 1085.70 L 1260.70 1093.70 L 1272.20 1102.00 L 1283.50 1110.70 L 1294.50 1119.80 L 1305.30 1129.30 L 1315.60 1139.10 L 1325.70 1149.20 L 1335.40 1159.60 L 1344.80 1170.40 L 1353.90 1181.50 L 1362.60 1192.90 L 1371.00 1204.60 L 1378.90 1216.60 L 1386.50 1228.80 L 1393.70 1241.40 L 1400.60 1254.30 Z" fill="#ffffff" fill-rule="evenodd" node-id="220" stroke="none" target-height="877.7" target-width="877.7" target-x="570.7" target-y="1014.7"/></mask><mask height="146.13855" id="mask-15" maskUnits="userSpaceOnUse" node-id="85" width="172.23465" x="3.044551" y="357.51733"><path d="M 187.00 0.00 L 198.10 0.30 L 208.90 1.30 L 219.50 2.80 L 229.90 4.90 L 240.20 7.70 L 250.20 10.90 L 259.80 14.70 L 269.30 19.00 L 278.50 23.80 L 287.30 29.10 L 295.80 34.90 L 304.00 41.10 L 311.80 47.70 L 319.30 54.80 L 326.30 62.20 L 333.00 70.00 L 339.20 78.20 L 344.90 86.70 L 350.20 95.60 L 355.00 104.80 L 359.30 114.20 L 363.10 123.90 L 366.40 133.90 L 369.10 144.10 L 371.20 154.50 L 372.80 165.10 L 373.70 175.90 L 374.00 187.00 L 373.70 198.00 L 372.80 208.80 L 371.30 219.30 L 369.20 229.60 L 366.50 239.90 L 363.30 249.80 L 359.50 259.40 L 355.30 268.80 L 350.50 277.90 L 345.30 286.70 L 339.60 295.20 L 333.50 303.40 L 326.90 311.20 L 319.90 318.60 L 312.60 325.60 L 304.80 332.30 L 296.70 338.50 L 288.30 344.30 L 279.60 349.60 L 270.50 354.40 L 261.10 358.80 L 251.50 362.60 L 241.70 365.90 L 231.50 368.70 L 221.20 380.40 L 211.30 390.80 L 201.90 400.10 L 192.90 408.40 L 183.30 416.60 L 174.20 423.80 L 165.50 430.00 L 157.20 435.40 L 148.40 440.50 L 140.10 444.80 L 132.10 448.40 L 124.50 451.30 L 116.60 453.70 L 109.00 455.60 L 101.70 456.90 L 94.80 457.70 L 87.70 457.90 L 80.80 457.80 L 74.30 457.20 L 68.00 456.20 L 61.70 454.70 L 55.70 452.90 L 44.20 448.40 L 40.80 446.50 L 37.50 444.00 L 34.20 440.80 L 31.00 436.80 L 27.80 431.90 L 24.60 426.00 L 21.50 418.90 L 18.50 410.50 L 15.60 400.70 L 12.90 389.10 L 10.30 375.80 L 8.00 360.40 L 6.00 342.80 L 4.30 322.70 L 2.90 300.00 L 2.10 274.40 L 1.70 245.60 L 1.90 213.50 L 0.80 204.80 L 0.20 196.00 L 0.00 187.00 L 0.30 175.90 L 1.30 165.10 L 2.80 154.50 L 4.90 144.10 L 7.70 133.90 L 10.90 123.90 L 14.70 114.20 L 19.00 104.80 L 23.80 95.60 L 29.10 86.70 L 34.90 78.20 L 41.10 70.00 L 47.70 62.20 L 54.80 54.80 L 62.20 47.70 L 70.00 41.10 L 78.20 34.90 L 86.70 29.10 L 95.60 23.80 L 104.80 19.00 L 114.20 14.70 L 123.90 10.90 L 133.90 7.70 L 144.10 4.90 L 154.50 2.80 L 165.10 1.30 L 175.90 0.30 L 187.00 0.00 Z" fill="#ffffff" fill-rule="evenodd" node-id="227" stroke="none" target-height="457.9" target-width="374" target-x="0" target-y="0"/></mask></defs><g node-id="299"><g node-id="300"><g node-id="305"><path d="M 1024.00 512.00 L 1023.70 528.30 L 1023.00 544.50 L 1021.70 560.60 L 1019.90 576.70 L 1017.60 592.60 L 1014.80 608.40 L 1011.60 624.20 L 1007.80 639.70 L 1003.60 655.20 L 998.90 670.40 L 993.70 685.60 L 988.00 700.50 L 981.90 715.30 L 975.30 729.80 L 968.30 744.20 L 960.80 758.40 L 952.90 772.30 L 944.60 785.90 L 935.80 799.40 L 926.50 812.60 L 916.90 825.40 L 906.80 838.00 L 896.30 850.30 L 885.40 862.30 L 874.00 874.00 L 862.30 885.40 L 850.30 896.30 L 838.00 906.80 L 825.40 916.90 L 812.60 926.50 L 799.40 935.80 L 785.90 944.60 L 772.30 952.90 L 758.40 960.80 L 744.20 968.30 L 729.80 975.30 L 715.30 981.90 L 700.50 988.00 L 685.60 993.70 L 670.40 998.90 L 655.20 1003.60 L 639.70 1007.80 L 624.20 1011.60 L 608.40 1014.80 L 592.60 1017.60 L 576.70 1019.90 L 560.60 1021.70 L 544.50 1023.00 L 528.30 1023.70 L 512.00 1024.00 L 495.70 1023.70 L 479.50 1023.00 L 463.40 1021.70 L 447.30 1019.90 L 431.40 1017.60 L 415.60 1014.80 L 399.80 1011.60 L 384.30 1007.80 L 368.80 1003.60 L 353.60 998.90 L 338.40 993.70 L 323.50 988.00 L 308.70 981.90 L 294.20 975.30 L 279.80 968.30 L 265.60 960.80 L 251.70 952.90 L 238.10 944.60 L 224.60 935.80 L 211.40 926.50 L 198.60 916.90 L 186.00 906.80 L 173.70 896.30 L 161.70 885.40 L 150.00 874.00 L 138.60 862.30 L 127.70 850.30 L 117.20 838.00 L 107.10 825.40 L 97.50 812.60 L 88.20 799.40 L 79.40 785.90 L 71.10 772.30 L 63.20 758.40 L 55.70 744.20 L 48.70 729.80 L 42.10 715.30 L 36.00 700.50 L 30.30 685.60 L 25.10 670.40 L 20.40 655.20 L 16.20 639.70 L 12.40 624.20 L 9.20 608.40 L 6.40 592.60 L 4.10 576.70 L 2.30 560.60 L 1.00 544.50 L 0.30 528.30 L 0.00 512.00 L 0.30 495.70 L 1.00 479.50 L 2.30 463.40 L 4.10 447.30 L 6.40 431.40 L 9.20 415.60 L 12.40 399.80 L 16.20 384.30 L 20.40 368.80 L 25.10 353.60 L 30.30 338.40 L 36.00 323.50 L 42.10 308.70 L 48.70 294.20 L 55.70 279.80 L 63.20 265.60 L 71.10 251.70 L 79.40 238.10 L 88.20 224.60 L 97.50 211.40 L 107.10 198.60 L 117.20 186.00 L 127.70 173.70 L 138.60 161.70 L 150.00 150.00 L 161.70 138.60 L 173.70 127.70 L 186.00 117.20 L 198.60 107.10 L 211.40 97.50 L 224.60 88.20 L 238.10 79.40 L 251.70 71.10 L 265.60 63.20 L 279.80 55.70 L 294.20 48.70 L 308.70 42.10 L 323.50 36.00 L 338.40 30.30 L 353.60 25.10 L 368.80 20.40 L 384.30 16.20 L 399.80 12.40 L 415.60 9.20 L 431.40 6.40 L 447.30 4.10 L 463.40 2.30 L 479.50 1.00 L 495.70 0.30 L 512.00 0.00 L 528.30 0.30 L 544.50 1.00 L 560.60 2.30 L 576.70 4.10 L 592.60 6.40 L 608.40 9.20 L 624.20 12.40 L 639.70 16.20 L 655.20 20.40 L 670.40 25.10 L 685.60 30.30 L 700.50 36.00 L 715.30 42.10 L 729.80 48.70 L 744.20 55.70 L 758.40 63.20 L 772.30 71.10 L 785.90 79.40 L 799.40 88.20 L 812.60 97.50 L 825.40 107.10 L 838.00 117.20 L 850.30 127.70 L 862.30 138.60 L 874.00 150.00 L 885.40 161.70 L 896.30 173.70 L 906.80 186.00 L 916.90 198.60 L 926.50 211.40 L 935.80 224.60 L 944.60 238.10 L 952.90 251.70 L 960.80 265.60 L 968.30 279.80 L 975.30 294.20 L 981.90 308.70 L 988.00 323.50 L 993.70 338.40 L 998.90 353.60 L 1003.60 368.80 L 1007.80 384.30 L 1011.60 399.80 L 1014.80 415.60 L 1017.60 431.40 L 1019.90 447.30 L 1021.70 463.40 L 1023.00 479.50 L 1023.70 495.70 L 1024.00 512.00 Z" fill="#ffffff" fill-rule="evenodd" group-id="1,2,7" node-id="237" stroke="none" target-height="1024" target-width="1024" target-x="0" target-y="0"/></g><path d="M 1024.00 512.00 L 1023.70 528.30 L 1023.00 544.50 L 1021.70 560.60 L 1019.90 576.70 L 1017.60 592.60 L 1014.80 608.40 L 1011.60 624.20 L 1007.80 639.70 L 1003.60 655.20 L 998.90 670.40 L 993.70 685.60 L 988.00 700.50 L 981.90 715.30 L 975.30 729.80 L 968.30 744.20 L 960.80 758.40 L 952.90 772.30 L 944.60 785.90 L 935.80 799.40 L 926.50 812.60 L 916.90 825.40 L 906.80 838.00 L 896.30 850.30 L 885.40 862.30 L 874.00 874.00 L 862.30 885.40 L 850.30 896.30 L 838.00 906.80 L 825.40 916.90 L 812.60 926.50 L 799.40 935.80 L 785.90 944.60 L 772.30 952.90 L 758.40 960.80 L 744.20 968.30 L 729.80 975.30 L 715.30 981.90 L 700.50 988.00 L 685.60 993.70 L 670.40 998.90 L 655.20 1003.60 L 639.70 1007.80 L 624.20 1011.60 L 608.40 1014.80 L 592.60 1017.60 L 576.70 1019.90 L 560.60 1021.70 L 544.50 1023.00 L 528.30 1023.70 L 512.00 1024.00 L 495.70 1023.70 L 479.50 1023.00 L 463.40 1021.70 L 447.30 1019.90 L 431.40 1017.60 L 415.60 1014.80 L 399.80 1011.60 L 384.30 1007.80 L 368.80 1003.60 L 353.60 998.90 L 338.40 993.70 L 323.50 988.00 L 308.70 981.90 L 294.20 975.30 L 279.80 968.30 L 265.60 960.80 L 251.70 952.90 L 238.10 944.60 L 224.60 935.80 L 211.40 926.50 L 198.60 916.90 L 186.00 906.80 L 173.70 896.30 L 161.70 885.40 L 150.00 874.00 L 138.60 862.30 L 127.70 850.30 L 117.20 838.00 L 107.10 825.40 L 97.50 812.60 L 88.20 799.40 L 79.40 785.90 L 71.10 772.30 L 63.20 758.40 L 55.70 744.20 L 48.70 729.80 L 42.10 715.30 L 36.00 700.50 L 30.30 685.60 L 25.10 670.40 L 20.40 655.20 L 16.20 639.70 L 12.40 624.20 L 9.20 608.40 L 6.40 592.60 L 4.10 576.70 L 2.30 560.60 L 1.00 544.50 L 0.30 528.30 L 0.00 512.00 L 0.30 495.70 L 1.00 479.50 L 2.30 463.40 L 4.10 447.30 L 6.40 431.40 L 9.20 415.60 L 12.40 399.80 L 16.20 384.30 L 20.40 368.80 L 25.10 353.60 L 30.30 338.40 L 36.00 323.50 L 42.10 308.70 L 48.70 294.20 L 55.70 279.80 L 63.20 265.60 L 71.10 251.70 L 79.40 238.10 L 88.20 224.60 L 97.50 211.40 L 107.10 198.60 L 117.20 186.00 L 127.70 173.70 L 138.60 161.70 L 150.00 150.00 L 161.70 138.60 L 173.70 127.70 L 186.00 117.20 L 198.60 107.10 L 211.40 97.50 L 224.60 88.20 L 238.10 79.40 L 251.70 71.10 L 265.60 63.20 L 279.80 55.70 L 294.20 48.70 L 308.70 42.10 L 323.50 36.00 L 338.40 30.30 L 353.60 25.10 L 368.80 20.40 L 384.30 16.20 L 399.80 12.40 L 415.60 9.20 L 431.40 6.40 L 447.30 4.10 L 463.40 2.30 L 479.50 1.00 L 495.70 0.30 L 512.00 0.00 L 528.30 0.30 L 544.50 1.00 L 560.60 2.30 L 576.70 4.10 L 592.60 6.40 L 608.40 9.20 L 624.20 12.40 L 639.70 16.20 L 655.20 20.40 L 670.40 25.10 L 685.60 30.30 L 700.50 36.00 L 715.30 42.10 L 729.80 48.70 L 744.20 55.70 L 758.40 63.20 L 772.30 71.10 L 785.90 79.40 L 799.40 88.20 L 812.60 97.50 L 825.40 107.10 L 838.00 117.20 L 850.30 127.70 L 862.30 138.60 L 874.00 150.00 L 885.40 161.70 L 896.30 173.70 L 906.80 186.00 L 916.90 198.60 L 926.50 211.40 L 935.80 224.60 L 944.60 238.10 L 952.90 251.70 L 960.80 265.60 L 968.30 279.80 L 975.30 294.20 L 981.90 308.70 L 988.00 323.50 L 993.70 338.40 L 998.90 353.60 L 1003.60 368.80 L 1007.80 384.30 L 1011.60 399.80 L 1014.80 415.60 L 1017.60 431.40 L 1019.90 447.30 L 1021.70 463.40 L 1023.00 479.50 L 1023.70 495.70 L 1024.00 512.00 Z" fill="#000000" fill-rule="evenodd" filter="url(#filter-2)" group-id="1,2,8" node-id="242" stroke="none" target-height="1024" target-width="1024" target-x="0" target-y="0"/></g><g node-id="301"><g node-id="307"><path d="M 950.90 512.00 L 950.60 526.60 L 949.90 541.10 L 948.70 555.50 L 947.00 569.70 L 944.90 583.90 L 942.30 598.00 L 939.30 612.10 L 935.80 625.90 L 931.90 639.70 L 927.50 653.20 L 922.70 666.70 L 917.50 679.90 L 911.80 693.10 L 905.70 705.90 L 899.20 718.60 L 892.20 731.10 L 884.90 743.40 L 877.10 755.50 L 869.00 767.30 L 860.40 778.80 L 851.50 790.10 L 842.20 801.10 L 832.50 811.80 L 822.30 822.30 L 811.80 832.50 L 801.10 842.20 L 790.10 851.50 L 778.80 860.40 L 767.30 869.00 L 755.50 877.10 L 743.40 884.90 L 731.10 892.20 L 718.60 899.20 L 705.90 905.70 L 693.10 911.80 L 679.90 917.50 L 666.70 922.70 L 653.20 927.50 L 639.70 931.90 L 625.90 935.80 L 612.10 939.30 L 598.00 942.30 L 583.90 944.90 L 569.70 947.00 L 555.50 948.70 L 541.10 949.90 L 526.60 950.60 L 512.00 950.90 L 497.40 950.60 L 482.90 949.90 L 468.50 948.70 L 454.30 947.00 L 440.10 944.90 L 426.00 942.30 L 411.90 939.30 L 398.10 935.80 L 384.30 931.90 L 370.80 927.50 L 357.30 922.70 L 344.10 917.50 L 330.90 911.80 L 318.10 905.70 L 305.40 899.20 L 292.90 892.20 L 280.60 884.90 L 268.50 877.10 L 256.70 869.00 L 245.20 860.40 L 233.90 851.50 L 222.90 842.20 L 212.20 832.50 L 201.70 822.30 L 191.50 811.80 L 181.80 801.10 L 172.50 790.10 L 163.60 778.80 L 155.00 767.30 L 146.90 755.50 L 139.10 743.40 L 131.80 731.10 L 124.80 718.60 L 118.30 705.90 L 112.20 693.10 L 106.50 679.90 L 101.30 666.70 L 96.50 653.20 L 92.10 639.70 L 88.20 625.90 L 84.70 612.10 L 81.70 598.00 L 79.10 583.90 L 77.00 569.70 L 75.30 555.50 L 74.10 541.10 L 73.40 526.60 L 73.10 512.00 L 73.40 497.40 L 74.10 482.90 L 75.30 468.50 L 77.00 454.30 L 79.10 440.10 L 81.70 426.00 L 84.70 411.90 L 88.20 398.10 L 92.10 384.30 L 96.50 370.80 L 101.30 357.30 L 106.50 344.10 L 112.20 330.90 L 118.30 318.10 L 124.80 305.40 L 131.80 292.90 L 139.10 280.60 L 146.90 268.50 L 155.00 256.70 L 163.60 245.20 L 172.50 233.90 L 181.80 222.90 L 191.50 212.20 L 201.70 201.70 L 212.20 191.50 L 222.90 181.80 L 233.90 172.50 L 245.20 163.60 L 256.70 155.00 L 268.50 146.90 L 280.60 139.10 L 292.90 131.80 L 305.40 124.80 L 318.10 118.30 L 330.90 112.20 L 344.10 106.50 L 357.30 101.30 L 370.80 96.50 L 384.30 92.10 L 398.10 88.20 L 411.90 84.70 L 426.00 81.70 L 440.10 79.10 L 454.30 77.00 L 468.50 75.30 L 482.90 74.10 L 497.40 73.40 L 512.00 73.10 L 526.60 73.40 L 541.10 74.10 L 555.50 75.30 L 569.70 77.00 L 583.90 79.10 L 598.00 81.70 L 612.10 84.70 L 625.90 88.20 L 639.70 92.10 L 653.20 96.50 L 666.70 101.30 L 679.90 106.50 L 693.10 112.20 L 705.90 118.30 L 718.60 124.80 L 731.10 131.80 L 743.40 139.10 L 755.50 146.90 L 767.30 155.00 L 778.80 163.60 L 790.10 172.50 L 801.10 181.80 L 811.80 191.50 L 822.30 201.70 L 832.50 212.20 L 842.20 222.90 L 851.50 233.90 L 860.40 245.20 L 869.00 256.70 L 877.10 268.50 L 884.90 280.60 L 892.20 292.90 L 899.20 305.40 L 905.70 318.10 L 911.80 330.90 L 917.50 344.10 L 922.70 357.30 L 927.50 370.80 L 931.90 384.30 L 935.80 398.10 L 939.30 411.90 L 942.30 426.00 L 944.90 440.10 L 947.00 454.30 L 948.70 468.50 L 949.90 482.90 L 950.60 497.40 L 950.90 512.00 Z" fill="#316cd4" fill-rule="evenodd" group-id="1,3,9" node-id="249" stroke="none" target-height="877.80005" target-width="877.80005" target-x="73.1" target-y="73.1"/></g><path d="M 950.90 512.00 L 950.60 526.60 L 949.90 541.10 L 948.70 555.50 L 947.00 569.70 L 944.90 583.90 L 942.30 598.00 L 939.30 612.10 L 935.80 625.90 L 931.90 639.70 L 927.50 653.20 L 922.70 666.70 L 917.50 679.90 L 911.80 693.10 L 905.70 705.90 L 899.20 718.60 L 892.20 731.10 L 884.90 743.40 L 877.10 755.50 L 869.00 767.30 L 860.40 778.80 L 851.50 790.10 L 842.20 801.10 L 832.50 811.80 L 822.30 822.30 L 811.80 832.50 L 801.10 842.20 L 790.10 851.50 L 778.80 860.40 L 767.30 869.00 L 755.50 877.10 L 743.40 884.90 L 731.10 892.20 L 718.60 899.20 L 705.90 905.70 L 693.10 911.80 L 679.90 917.50 L 666.70 922.70 L 653.20 927.50 L 639.70 931.90 L 625.90 935.80 L 612.10 939.30 L 598.00 942.30 L 583.90 944.90 L 569.70 947.00 L 555.50 948.70 L 541.10 949.90 L 526.60 950.60 L 512.00 950.90 L 497.40 950.60 L 482.90 949.90 L 468.50 948.70 L 454.30 947.00 L 440.10 944.90 L 426.00 942.30 L 411.90 939.30 L 398.10 935.80 L 384.30 931.90 L 370.80 927.50 L 357.30 922.70 L 344.10 917.50 L 330.90 911.80 L 318.10 905.70 L 305.40 899.20 L 292.90 892.20 L 280.60 884.90 L 268.50 877.10 L 256.70 869.00 L 245.20 860.40 L 233.90 851.50 L 222.90 842.20 L 212.20 832.50 L 201.70 822.30 L 191.50 811.80 L 181.80 801.10 L 172.50 790.10 L 163.60 778.80 L 155.00 767.30 L 146.90 755.50 L 139.10 743.40 L 131.80 731.10 L 124.80 718.60 L 118.30 705.90 L 112.20 693.10 L 106.50 679.90 L 101.30 666.70 L 96.50 653.20 L 92.10 639.70 L 88.20 625.90 L 84.70 612.10 L 81.70 598.00 L 79.10 583.90 L 77.00 569.70 L 75.30 555.50 L 74.10 541.10 L 73.40 526.60 L 73.10 512.00 L 73.40 497.40 L 74.10 482.90 L 75.30 468.50 L 77.00 454.30 L 79.10 440.10 L 81.70 426.00 L 84.70 411.90 L 88.20 398.10 L 92.10 384.30 L 96.50 370.80 L 101.30 357.30 L 106.50 344.10 L 112.20 330.90 L 118.30 318.10 L 124.80 305.40 L 131.80 292.90 L 139.10 280.60 L 146.90 268.50 L 155.00 256.70 L 163.60 245.20 L 172.50 233.90 L 181.80 222.90 L 191.50 212.20 L 201.70 201.70 L 212.20 191.50 L 222.90 181.80 L 233.90 172.50 L 245.20 163.60 L 256.70 155.00 L 268.50 146.90 L 280.60 139.10 L 292.90 131.80 L 305.40 124.80 L 318.10 118.30 L 330.90 112.20 L 344.10 106.50 L 357.30 101.30 L 370.80 96.50 L 384.30 92.10 L 398.10 88.20 L 411.90 84.70 L 426.00 81.70 L 440.10 79.10 L 454.30 77.00 L 468.50 75.30 L 482.90 74.10 L 497.40 73.40 L 512.00 73.10 L 526.60 73.40 L 541.10 74.10 L 555.50 75.30 L 569.70 77.00 L 583.90 79.10 L 598.00 81.70 L 612.10 84.70 L 625.90 88.20 L 639.70 92.10 L 653.20 96.50 L 666.70 101.30 L 679.90 106.50 L 693.10 112.20 L 705.90 118.30 L 718.60 124.80 L 731.10 131.80 L 743.40 139.10 L 755.50 146.90 L 767.30 155.00 L 778.80 163.60 L 790.10 172.50 L 801.10 181.80 L 811.80 191.50 L 822.30 201.70 L 832.50 212.20 L 842.20 222.90 L 851.50 233.90 L 860.40 245.20 L 869.00 256.70 L 877.10 268.50 L 884.90 280.60 L 892.20 292.90 L 899.20 305.40 L 905.70 318.10 L 911.80 330.90 L 917.50 344.10 L 922.70 357.30 L 927.50 370.80 L 931.90 384.30 L 935.80 398.10 L 939.30 411.90 L 942.30 426.00 L 944.90 440.10 L 947.00 454.30 L 948.70 468.50 L 949.90 482.90 L 950.60 497.40 L 950.90 512.00 Z" fill="#000000" fill-rule="evenodd" filter="url(#filter-5)" group-id="1,3,10" node-id="254" stroke="none" target-height="877.80005" target-width="877.80005" target-x="73.1" target-y="73.1"/></g><g node-id="302"><g node-id="309"><path d="M 146.30 690.20 L 511.00 482.70 L 868.00 690.20 L 507.10 892.30 Z" fill="#000000" fill-rule="evenodd" filter="url(#filter-7)" group-id="1,4,11" node-id="261" stroke="none" target-height="409.59998" target-width="721.7" target-x="146.3" target-y="482.7"/></g><path d="M 146.30 690.20 L 511.00 482.70 L 868.00 690.20 L 507.10 892.30 Z" fill="#ffffff" fill-rule="evenodd" group-id="1,4,12" node-id="266" stroke="#c2dafe" stroke-linecap="butt" stroke-width="1" target-height="409.59998" target-width="721.7" target-x="146.3" target-y="482.7"/></g><g node-id="303"><g node-id="311"><path d="M 225.30 657.40 L 508.20 498.30 L 785.10 657.40 L 505.20 812.40 Z" fill="#000000" fill-rule="evenodd" filter="url(#filter-9)" group-id="1,5,13" node-id="273" stroke="none" target-height="314.10004" target-width="559.8" target-x="225.3" target-y="498.3"/></g><path d="M 225.30 657.40 L 508.20 498.30 L 785.10 657.40 L 505.20 812.40 Z" fill="#c2dafe" fill-rule="evenodd" group-id="1,5,14" node-id="278" stroke="none" target-height="314.10004" target-width="559.8" target-x="225.3" target-y="498.3"/></g><g node-id="304"><g node-id="313"><g node-id="314"><g node-id="315"><g node-id="316"><path d="M 349.10 655.00 L 349.40 657.70 L 350.10 660.40 L 351.40 663.20 L 353.20 666.00 L 358.10 671.00 L 365.20 676.10 L 370.60 679.10 L 377.00 682.00 L 384.50 684.90 L 400.50 689.60 L 409.60 691.60 L 428.40 694.70 L 448.80 696.60 L 469.90 697.30 L 491.10 696.60 L 511.40 694.70 L 530.20 691.60 L 539.40 689.60 L 555.30 684.90 L 562.90 682.00 L 569.20 679.10 L 574.60 676.10 L 578.50 673.50 L 581.80 671.00 L 586.60 666.00 L 588.50 663.20 L 589.70 660.40 L 590.50 657.70 L 590.70 655.00 L 590.50 652.30 L 589.80 649.60 L 588.60 647.00 L 586.90 644.30 L 584.60 641.60 L 581.50 638.70 L 577.60 635.80 L 573.00 632.90 L 567.40 630.00 L 555.80 625.20 L 541.30 620.90 L 531.20 618.50 L 520.10 616.50 L 508.10 614.90 L 496.00 613.70 L 483.30 613.00 L 469.90 612.70 L 456.50 613.00 L 443.80 613.70 L 431.70 614.90 L 419.70 616.50 L 408.70 618.50 L 398.60 620.90 L 384.10 625.20 L 372.40 630.00 L 366.90 632.90 L 362.20 635.80 L 358.40 638.70 L 355.30 641.60 L 353.00 644.30 L 351.20 647.00 L 350.10 649.60 L 349.40 652.30 L 349.10 655.00 Z" fill="url(#linearGradient-11)" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="椭圆形" node-id="82" stroke="none" target-height="84.599976" target-width="241.6" target-x="349.1" target-y="612.7"/><path d="M 556.90 453.30 L 396.00 453.30 L 396.00 633.00 L 399.30 636.90 L 402.90 640.50 L 406.90 643.80 L 411.20 646.90 L 417.40 650.50 L 424.10 653.60 L 431.20 656.20 L 438.60 658.40 L 446.30 660.10 L 454.30 661.30 L 462.30 662.10 L 470.50 662.50 L 478.70 662.40 L 486.90 661.90 L 494.90 661.10 L 502.80 659.80 L 510.60 658.10 L 518.00 656.20 L 525.00 653.80 L 531.90 651.10 L 538.00 648.10 L 543.60 644.80 L 551.10 639.10 L 556.90 633.00 L 556.90 453.30 Z" fill="url(#linearGradient-12)" fill-rule="nonzero" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="矩形" node-id="83" stroke="none" target-height="209.20001" target-width="160.90002" target-x="396" target-y="453.3"/><g node-id="317"><g node-id="319"><path d="M 535.20 153.20 L 524.10 153.60 L 513.20 154.50 L 502.60 156.00 L 492.30 158.20 L 482.00 160.90 L 472.00 164.10 L 462.30 167.90 L 452.90 172.20 L 443.70 177.10 L 434.90 182.40 L 426.40 188.10 L 418.20 194.30 L 410.30 201.00 L 402.90 208.00 L 395.90 215.40 L 389.20 223.30 L 383.00 231.50 L 377.30 240.00 L 372.00 248.80 L 367.10 258.00 L 362.80 267.40 L 359.10 277.10 L 355.80 287.10 L 353.10 297.40 L 350.90 307.70 L 349.40 318.30 L 348.50 329.20 L 348.10 340.20 L 348.50 351.30 L 349.40 362.00 L 350.90 372.60 L 353.00 382.90 L 355.70 393.10 L 358.90 403.00 L 362.70 412.60 L 366.90 422.00 L 371.70 431.20 L 376.90 440.00 L 382.60 448.40 L 388.70 456.60 L 395.30 464.40 L 402.30 471.80 L 409.60 478.90 L 417.40 485.50 L 425.50 491.70 L 433.90 497.50 L 442.60 502.80 L 451.70 507.70 L 461.00 512.00 L 470.60 515.80 L 480.50 519.20 L 490.70 522.00 L 501.00 533.60 L 510.90 544.00 L 520.30 553.40 L 529.30 561.60 L 538.90 569.80 L 548.00 577.00 L 556.70 583.20 L 565.00 588.60 L 573.70 593.70 L 582.10 598.00 L 590.10 601.60 L 597.70 604.50 L 605.60 607.00 L 613.20 608.80 L 620.50 610.10 L 627.40 610.90 L 634.50 611.20 L 641.30 611.00 L 647.90 610.40 L 654.20 609.40 L 660.50 607.90 L 666.50 606.20 L 678.00 601.60 L 681.40 599.70 L 684.70 597.20 L 687.90 594.00 L 691.20 590.00 L 694.40 585.10 L 697.50 579.20 L 700.60 572.10 L 703.70 563.80 L 706.60 553.90 L 709.30 542.40 L 711.90 529.00 L 714.20 513.60 L 716.20 496.00 L 717.90 476.00 L 719.20 453.20 L 720.10 427.60 L 720.50 398.90 L 720.30 366.70 L 721.30 358.00 L 722.00 349.20 L 722.20 340.20 L 721.80 329.20 L 720.90 318.30 L 719.40 307.70 L 717.20 297.40 L 714.50 287.10 L 711.30 277.10 L 707.50 267.40 L 703.20 258.00 L 698.30 248.80 L 693.10 240.00 L 687.30 231.50 L 681.10 223.30 L 674.40 215.40 L 667.40 208.00 L 660.00 201.00 L 652.10 194.30 L 643.90 188.10 L 635.40 182.40 L 626.60 177.10 L 617.40 172.20 L 608.00 167.90 L 598.30 164.10 L 588.30 160.90 L 578.00 158.20 L 567.70 156.00 L 557.10 154.50 L 546.20 153.60 L 535.20 153.20 Z" fill="url(#linearGradient-13)" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18,19,21" node-id="292" stroke="none" target-height="458" target-width="374.1" target-x="348.1" target-y="153.2"/></g><path d="M 561.30 583.80 L 561.50 588.90 L 562.20 593.70 L 563.30 598.50 L 564.90 603.10 L 566.90 607.50 L 569.20 611.80 L 572.00 615.90 L 575.10 619.80 L 582.20 626.80 L 586.30 630.00 L 595.20 635.60 L 605.00 639.90 L 615.70 642.90 L 621.30 643.90 L 633.00 644.70 L 644.80 643.90 L 655.70 641.60 L 666.10 637.90 L 670.90 635.60 L 679.80 630.00 L 683.80 626.80 L 690.90 619.80 L 694.10 615.90 L 696.80 611.80 L 699.10 607.50 L 701.10 603.10 L 702.70 598.50 L 703.80 593.70 L 704.50 588.90 L 704.80 583.80 L 704.50 578.80 L 703.80 573.90 L 702.70 569.20 L 701.10 564.60 L 699.10 560.10 L 696.80 555.90 L 694.10 551.80 L 687.50 544.20 L 679.80 537.60 L 675.40 534.70 L 666.10 529.70 L 661.00 527.70 L 650.30 524.70 L 644.80 523.70 L 633.00 522.90 L 621.30 523.70 L 615.70 524.70 L 605.00 527.70 L 595.20 532.10 L 586.30 537.60 L 582.20 540.80 L 575.10 547.90 L 572.00 551.80 L 569.20 555.90 L 566.90 560.10 L 564.90 564.60 L 563.30 569.20 L 562.20 573.90 L 561.50 578.80 L 561.30 583.80 Z" fill="url(#linearGradient-16)" fill-opacity="0.23635137" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18,19,22" node-id="297" stroke="none" target-height="121.79999" target-width="143.5" target-x="561.3" target-y="522.9"/></g><g node-id="318"><path d="M 436.10 440.00 L 442.50 452.00 L 449.10 463.50 L 456.00 474.50 L 463.00 485.00 L 470.60 495.40 L 478.20 505.20 L 486.00 514.50 L 493.90 523.20 L 502.20 531.80 L 510.60 539.70 L 518.90 547.00 L 527.30 553.80 L 536.10 560.30 L 544.80 566.10 L 553.40 571.20 L 562.00 575.80 L 570.90 580.00 L 579.60 583.40 L 588.10 586.30 L 596.50 588.50 L 603.50 589.80 L 610.20 590.70 L 616.80 591.20 L 623.30 591.20 L 629.60 590.90 L 636.00 590.10 L 642.20 588.80 L 648.20 587.10 L 654.10 584.90 L 659.90 582.20 L 665.50 579.10 L 670.70 575.60 L 675.60 571.70 L 680.30 567.50 L 684.70 562.80 L 688.70 557.90 L 692.50 552.60 L 696.00 547.00 L 699.20 541.00 L 702.20 534.60 L 705.40 526.50 L 708.10 518.00 L 710.40 508.90 L 712.30 499.20 L 713.60 489.60 L 714.50 479.60 L 714.90 469.20 L 714.80 458.30 L 714.30 447.50 L 713.30 436.40 L 711.80 425.00 L 709.80 413.30 L 707.30 401.70 L 704.40 390.00 L 700.90 378.00 L 697.00 365.80 L 692.60 353.90 L 687.70 341.90 L 682.30 329.80 L 676.40 317.60 L 670.00 305.60 L 663.40 294.10 L 656.50 283.10 L 649.40 272.50 L 641.90 262.10 L 634.30 252.30 L 626.50 243.10 L 618.60 234.30 L 610.30 225.80 L 601.90 217.80 L 593.50 210.50 L 585.10 203.80 L 576.40 197.30 L 567.70 191.50 L 559.00 186.30 L 550.50 181.70 L 541.60 177.60 L 532.90 174.10 L 524.30 171.30 L 515.90 169.10 L 509.00 167.70 L 502.30 166.80 L 495.70 166.30 L 489.20 166.30 L 482.90 166.70 L 476.50 167.50 L 470.30 168.70 L 464.30 170.50 L 458.40 172.70 L 452.60 175.30 L 447.00 178.40 L 441.80 181.90 L 436.80 185.80 L 432.20 190.10 L 427.80 194.70 L 423.70 199.60 L 420.00 204.90 L 416.50 210.50 L 413.20 216.50 L 410.30 222.90 L 407.10 231.00 L 404.40 239.60 L 402.10 248.70 L 400.20 258.30 L 398.90 267.90 L 398.00 277.90 L 397.60 288.40 L 397.70 299.30 L 398.20 310.00 L 399.20 321.10 L 400.70 332.50 L 402.70 344.30 L 405.20 355.80 L 408.10 367.60 L 411.50 379.50 L 415.50 391.70 L 419.90 403.60 L 424.70 415.70 L 430.20 427.80 L 436.10 440.00 Z" fill="url(#linearGradient-17)" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18,20" id="椭圆形" node-id="89" stroke="url(#linearGradient-18)" stroke-linecap="butt" stroke-width="3.5364552" target-height="424.90002" target-width="317.30002" target-x="397.6" target-y="166.3"/></g><path d="M 678.90 357.80 L 596.80 382.80 L 593.60 384.10 L 590.40 385.80 L 587.40 388.10 L 584.60 390.60 L 582.10 393.60 L 577.70 400.40 L 574.50 408.00 L 573.50 412.00 L 572.80 416.10 L 572.60 420.30 L 572.90 424.40 L 573.50 428.10 L 574.50 431.40 L 576.00 434.50 L 577.70 437.20 L 579.70 439.40 L 582.10 441.20 L 584.60 442.60 L 587.40 443.50 L 590.30 443.80 L 593.50 443.70 L 596.80 442.90 L 678.90 417.90 L 682.10 416.60 L 685.30 414.90 L 688.30 412.60 L 691.10 410.10 L 693.60 407.10 L 698.00 400.30 L 701.20 392.70 L 702.20 388.70 L 702.90 384.60 L 703.10 380.40 L 702.90 376.30 L 702.20 372.60 L 701.20 369.30 L 699.70 366.20 L 698.00 363.50 L 696.00 361.30 L 693.70 359.50 L 691.10 358.10 L 688.30 357.20 L 685.40 356.90 L 682.20 357.00 L 678.90 357.80 Z" fill="#ffffff" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="矩形" node-id="90" stroke="none" target-height="86.899994" target-width="130.5" target-x="572.6" target-y="356.9"/><path d="M 689.20 366.40 L 607.20 390.00 L 604.00 391.20 L 600.80 392.80 L 597.80 394.90 L 595.00 397.30 L 592.50 400.10 L 588.00 406.50 L 584.90 413.70 L 583.90 417.50 L 583.20 421.30 L 583.00 425.20 L 583.30 429.20 L 583.90 432.70 L 584.90 435.80 L 586.30 438.50 L 588.10 441.10 L 590.10 443.20 L 592.40 444.90 L 595.00 446.20 L 597.70 447.00 L 600.70 447.40 L 603.80 447.20 L 607.20 446.50 L 689.20 423.00 L 692.50 421.80 L 695.70 420.10 L 698.70 418.00 L 701.50 415.60 L 704.00 412.80 L 708.40 406.40 L 711.60 399.30 L 712.60 395.50 L 713.30 391.60 L 713.50 387.70 L 713.20 383.80 L 712.60 380.30 L 711.50 377.20 L 710.20 374.40 L 708.40 371.80 L 706.30 369.70 L 704.10 368.00 L 701.50 366.80 L 698.70 365.90 L 695.80 365.60 L 692.70 365.70 L 689.20 366.40 Z" fill="#46eff8" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="矩形" node-id="91" stroke="none" target-height="81.79999" target-width="130.5" target-x="583" target-y="365.6"/><path d="M 356.80 444.60 L 357.10 450.40 L 357.80 456.00 L 358.90 461.40 L 360.40 466.60 L 362.30 471.80 L 364.60 476.60 L 367.30 481.30 L 370.30 485.70 L 373.60 489.90 L 377.20 493.80 L 381.10 497.50 L 385.30 500.80 L 389.80 503.80 L 394.40 506.40 L 399.30 508.70 L 404.40 510.70 L 409.70 512.20 L 415.10 513.30 L 420.60 514.00 L 426.40 514.20 L 432.20 514.00 L 437.80 513.30 L 443.20 512.20 L 448.40 510.70 L 453.50 508.70 L 458.40 506.40 L 463.10 503.80 L 467.50 500.80 L 471.70 497.50 L 475.60 493.80 L 479.20 489.90 L 482.60 485.70 L 485.60 481.30 L 488.20 476.60 L 490.50 471.80 L 492.50 466.60 L 494.00 461.40 L 495.10 456.00 L 495.80 450.40 L 496.00 444.60 L 495.80 438.90 L 495.10 433.30 L 494.00 427.90 L 492.50 422.60 L 490.50 417.50 L 488.20 412.60 L 485.60 408.00 L 482.60 403.50 L 479.20 399.30 L 475.60 395.40 L 471.70 391.80 L 467.50 388.50 L 463.10 385.50 L 458.40 382.80 L 453.50 380.50 L 448.40 378.60 L 443.20 377.10 L 437.80 376.00 L 432.20 375.30 L 426.40 375.00 L 420.60 375.30 L 415.10 376.00 L 409.70 377.10 L 404.40 378.60 L 399.30 380.50 L 394.40 382.80 L 389.80 385.50 L 385.30 388.50 L 381.10 391.80 L 377.20 395.40 L 373.60 399.30 L 370.30 403.50 L 367.30 408.00 L 364.60 412.60 L 362.30 417.50 L 360.40 422.60 L 358.90 427.90 L 357.80 433.30 L 357.10 438.90 L 356.80 444.60 Z" fill="#0042dc" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="椭圆形" node-id="92" stroke="none" target-height="139.20001" target-width="139.20001" target-x="356.8" target-y="375"/><path d="M 343.80 444.60 L 344.00 450.40 L 344.70 456.00 L 345.80 461.40 L 347.30 466.60 L 349.30 471.80 L 351.60 476.60 L 354.20 481.30 L 357.20 485.70 L 360.60 489.90 L 364.20 493.80 L 368.10 497.50 L 372.30 500.80 L 376.70 503.80 L 381.40 506.40 L 386.30 508.70 L 391.40 510.70 L 396.60 512.20 L 402.00 513.30 L 407.60 514.00 L 413.40 514.20 L 419.20 514.00 L 424.70 513.30 L 430.10 512.20 L 435.40 510.70 L 440.50 508.70 L 445.40 506.40 L 450.00 503.80 L 454.50 500.80 L 458.70 497.50 L 462.60 493.80 L 466.20 489.90 L 469.50 485.70 L 472.50 481.30 L 475.20 476.60 L 477.50 471.80 L 479.40 466.60 L 480.90 461.40 L 482.00 456.00 L 482.70 450.40 L 483.00 444.60 L 482.70 438.90 L 482.00 433.30 L 480.90 427.90 L 479.40 422.60 L 477.50 417.50 L 475.20 412.60 L 472.50 408.00 L 469.50 403.50 L 466.20 399.30 L 462.60 395.40 L 458.70 391.80 L 454.50 388.50 L 450.00 385.50 L 445.40 382.80 L 440.50 380.50 L 435.40 378.60 L 430.10 377.10 L 424.70 376.00 L 419.20 375.30 L 413.40 375.00 L 407.60 375.30 L 402.00 376.00 L 396.60 377.10 L 391.40 378.60 L 386.30 380.50 L 381.40 382.80 L 376.70 385.50 L 372.30 388.50 L 368.10 391.80 L 364.20 395.40 L 360.60 399.30 L 357.20 403.50 L 354.20 408.00 L 351.60 412.60 L 349.30 417.50 L 347.30 422.60 L 345.80 427.90 L 344.70 433.30 L 344.00 438.90 L 343.80 444.60 Z" fill="url(#linearGradient-19)" fill-rule="evenodd" filter="url(#filter-10)" group-id="1,6,15,16,17,18" id="椭圆形" node-id="93" stroke="none" target-height="139.20001" target-width="139.20001" target-x="343.8" target-y="375"/></g></g></g><path d="M 675.20 293.30 L 693.40 296.30 L 727.00 302.90 L 742.40 306.40 L 758.10 310.50 L 772.60 314.80 L 786.00 319.10 L 798.40 323.60 L 810.90 328.70 L 822.20 333.80 L 832.20 338.90 L 841.00 344.10 L 848.20 348.90 L 854.40 353.50 L 859.80 358.20 L 864.30 362.80 L 868.20 367.30 L 871.20 371.60 L 873.60 375.80 L 875.40 380.00 L 876.70 384.20 L 877.40 388.40 L 877.70 392.60 L 877.40 396.80 L 876.70 401.00 L 875.40 405.20 L 873.50 409.50 L 871.10 413.70 L 868.10 418.00 L 864.20 422.60 L 859.50 427.20 L 854.10 431.90 L 847.80 436.60 L 840.50 441.40 L 831.60 446.50 L 821.50 451.70 L 810.10 456.80 L 797.40 462.00 L 784.80 466.40 L 771.30 470.80 L 756.60 475.00 L 740.70 479.10 L 725.10 482.70 L 691.20 489.30 L 672.80 492.20 L 635.80 497.00 L 616.20 498.90 L 575.70 501.80 L 555.00 502.70 L 512.00 503.50 L 490.20 503.30 L 469.00 502.70 L 428.10 500.60 L 407.80 498.90 L 369.30 494.70 L 332.80 489.30 L 315.40 486.10 L 283.30 479.10 L 267.40 475.00 L 252.70 470.80 L 239.20 466.40 L 226.60 462.00 L 213.90 456.80 L 202.50 451.70 L 192.40 446.50 L 183.50 441.40 L 176.20 436.60 L 169.90 431.90 L 164.50 427.20 L 159.80 422.60 L 155.90 418.00 L 152.90 413.70 L 150.50 409.50 L 148.60 405.20 L 147.30 401.00 L 146.60 396.80 L 146.30 392.60 L 146.60 388.00 L 147.50 383.50 L 149.00 379.00 L 151.20 374.40 L 154.00 369.80 L 157.10 365.70 L 160.90 361.50 L 165.20 357.30 L 170.30 353.00 L 176.10 348.70 L 183.30 343.90 L 191.50 339.10 L 200.70 334.30 L 211.00 329.60 L 221.20 325.30 L 244.30 317.00 L 270.00 309.40 L 297.90 302.70 L 313.20 299.50 L 333.30 295.80 L 354.70 292.40 L 377.20 289.50" fill="none" group-id="1,6,15" id="路径" node-id="94" stroke="url(#linearGradient-20)" stroke-linecap="round" stroke-width="2" target-height="214" target-width="731.4" target-x="146.3" target-y="289.5"/></g></g></g></svg>
                    </div>

                    <!-- 多个消息 -->
                    <div v-if="msg?.speeches.length > 1"
                         class="text-xs flex items-center justify-center gap-1 invisible absolute left-0 top-2 -ml-4 -translate-x-full group-hover:visible">
                      <button @click.stop="last(msg)" :disabled="!(msg.idx > 0)"
                              class="dark:text-white disabled:text-gray-300 dark:disabled:text-gray-400">
                        <svg stroke="currentColor" fill="none" stroke-width="1.5" viewBox="0 0 24 24"
                             stroke-linecap="round" stroke-linejoin="round" class="h-3 w-3" height="1em" width="1em"
                             xmlns="http://www.w3.org/2000/svg">
                          <polyline points="15 18 9 12 15 6"></polyline>
                        </svg>
                      </button>
                      <span class="flex-grow flex-shrink-0">{{ msg.idx + 1 }} / {{
                          msg.speeches.length
                        }}</span>
                      <button @click.stop="next(msg)" :disabled="!(msg.idx < msg.speeches.length - 1)"
                              class="dark:text-white disabled:text-gray-300 dark:disabled:text-gray-400">
                        <svg stroke="currentColor" fill="none" stroke-width="1.5" viewBox="0 0 24 24"
                             stroke-linecap="round" stroke-linejoin="round" class="h-3 w-3" height="1em" width="1em"
                             xmlns="http://www.w3.org/2000/svg">
                          <polyline points="9 18 15 12 9 6"></polyline>
                        </svg>
                      </button>
                    </div>
                  </div>
                  <div class="relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]">
                    <div class="flex flex-grow flex-col gap-3">
                      <!--  whitespace-pre-wrap -->
                      <div class="min-h-[20px] flex flex-col items-start gap-4">
                        <div v-html="mdToHtml(msg?.speeches[msg.idx], msg)"
                             :class="{ 'result-streaming': msg.loading }"
                             class="markdown prose-r w-full break-words dark:prose-invert light">
                        </div>
                      </div>
                    </div>
                    <div class="flex justify-between">
                      <div
                          class="text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-3 md:gap-4 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible">
                        <button @click.stop="suitable(idx, msg, 1)"
                                v-if="msg.suitable[msg.idx] == 0 || msg.suitable[msg.idx] == 1"
                                :class="{ 'suitable_selected': msg.suitable[msg.idx] == 1 }"
                                class="p-1 rounded-md hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200 disabled:dark:hover:text-gray-400">
                          <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24"
                               stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" height="1em"
                               width="1em" xmlns="http://www.w3.org/2000/svg">
                            <path
                                d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3">
                            </path>
                          </svg>
                        </button>
                        <button @click.stop="suitable(idx, msg, -1)"
                                v-if="msg.suitable[msg.idx] == 0 || msg.suitable[msg.idx] == -1"
                                :class="{ 'suitable_selected': msg.suitable[msg.idx] == -1 }"
                                class="p-1 rounded-md hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200 disabled:dark:hover:text-gray-400">
                          <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24"
                               stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" height="1em"
                               width="1em" xmlns="http://www.w3.org/2000/svg">
                            <path
                                d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17">
                            </path>
                          </svg>
                        </button>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </template>

            <div v-if="this.conversation?.msgList.length == 0"
                 class="text-gray-800 w-full md:max-w-2xl lg:max-w-3xl md:h-full md:flex md:flex-col px-6 dark:text-gray-100">
              <h1
                  class="text-4xl font-semibold text-center mt-6 sm:mt-[20vh] ml-auto mr-auto mb-10 sm:mb-16 flex gap-2 items-center justify-center">
                QuestAi</h1>
              <div class="md:flex items-start text-center gap-3.5">
                <div class="flex flex-col mb-8 md:mb-auto gap-3.5 flex-1">
                  <h2 class="flex gap-3 items-center m-auto text-lg font-normal md:flex-col md:gap-2">
                    <svg stroke="currentColor" fill="none" stroke-width="1.5" viewBox="0 0 24 24"
                         stroke-linecap="round" stroke-linejoin="round" class="h-6 w-6" height="1em" width="1em"
                         xmlns="http://www.w3.org/2000/svg">
                      <circle cx="12" cy="12" r="5"></circle>
                      <line x1="12" y1="1" x2="12" y2="3"></line>
                      <line x1="12" y1="21" x2="12" y2="23"></line>
                      <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
                      <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
                      <line x1="1" y1="12" x2="3" y2="12"></line>
                      <line x1="21" y1="12" x2="23" y2="12"></line>
                      <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
                      <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
                    </svg>
                    Examples
                  </h2>
                  <ul class="flex flex-col gap-3.5 w-full sm:max-w-md m-auto">
                    <button @click="inputChat('单位受贿罪最多判几年')"
                            class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md hover:bg-gray-200 dark:hover:bg-gray-900">
                      "单位受贿罪最多判几年" →
                    </button>
                    <button @click="inputChat('宪法保障的基本权利有哪些？')"
                            class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md hover:bg-gray-200 dark:hover:bg-gray-900">
                      "我花钱报名了一个教育公司的培训，但是他在上了几节课后就不营业了。" →
                    </button>
                    <button @click="inputChat('如何提起民事诉讼？')"
                            class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md hover:bg-gray-200 dark:hover:bg-gray-900">
                      "如何提起民事诉讼？" →
                    </button>
                    <button @click="inputChat('律师和法律顾问有什么区别？')"
                            class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md hover:bg-gray-200 dark:hover:bg-gray-900">
                      "律师和法律顾问有什么区别？" →
                    </button>
                    <button @click="inputChat('申请专利的步骤是什么？')"
                            class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md hover:bg-gray-200 dark:hover:bg-gray-900">
                      "申请专利的步骤是什么？" →
                    </button>
                  </ul>

                </div>
                <div class="flex flex-col mb-8 md:mb-auto gap-3.5 flex-1">
                  <h2 class="flex gap-3 items-center m-auto text-lg font-normal md:flex-col md:gap-2">
                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                         stroke="currentColor" aria-hidden="true" class="h-6 w-6">
                      <path stroke-linecap="round" stroke-linejoin="round"
                            d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z">
                      </path>
                    </svg>
                    Capabilities
                  </h2>
                  <ul class="flex flex-col gap-3.5 w-full sm:max-w-md m-auto">
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      提供命令式交互
                    </li>
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      /help 查看帮助
                    </li>
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      /extra加入新的信息
                    </li>
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      /analysis分析对话
                    </li>
                  </ul>

                </div>
                <div class="flex flex-col mb-8 md:mb-auto gap-3.5 flex-1">
                  <h2 class="flex gap-3 items-center m-auto text-lg font-normal md:flex-col md:gap-2">
                    <svg stroke="currentColor" fill="none" stroke-width="1.5" viewBox="0 0 24 24"
                         stroke-linecap="round" stroke-linejoin="round" class="h-6 w-6" height="1em" width="1em"
                         xmlns="http://www.w3.org/2000/svg">
                      <path
                          d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z">
                      </path>
                      <line x1="12" y1="9" x2="12" y2="13"></line>
                      <line x1="12" y1="17" x2="12.01" y2="17"></line>
                    </svg>
                    Limitations
                  </h2>
                  <ul class="flex flex-col gap-3.5 w-full sm:max-w-md m-auto">
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      可能偶尔会生成不准确的信息
                    </li>
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      可能偶尔会产生有害的指令或带有偏见的内容
                    </li>
                    <li class="w-full bg-gray-50 dark:bg-white/5 p-3 rounded-md">
                      对2023年之后的事件和世界情况了解有限
                    </li>
                  </ul>

                </div>
              </div>
            </div>

            <div class="w-full h-32 md:h-48 flex-shrink-0"></div>
          </div>

          <transition name="el-fade-in-linear">
            <!-- 回到底部 -->
            <button v-show="isShowGoBottom" @click="handleScrollBottom"
                    class="cursor-pointer absolute right-6 bottom-[124px] md:bottom-[120px] z-10 rounded-full border border-gray-200 bg-gray-50 text-gray-600 dark:border-white/10 dark:bg-white/10 dark:text-gray-200">
              <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round"
                   stroke-linejoin="round" class="h-4 w-4 m-1" height="1em" width="1em"
                   xmlns="http://www.w3.org/2000/svg">
                   xmlns="http://www.w3.org/2000/svg">
                <line x1="12" y1="5" x2="12" y2="19"></line>
                <polyline points="19 12 12 19 5 12"></polyline>
              </svg>
            </button>
          </transition>
        </div>
      </div>
    </div>
  </main>

</template>

<style scoped>
#app .markdown h1 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

#app .markdown h2 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

#app .markdown h3 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

#app .markdown h4 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

#app .markdown h5 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

#app .markdown h6 {
  margin-bottom: 0rem;
  margin-top: 0rem;
}

</style>
